﻿using System;
using System.Text;
using System.Drawing;
using System.Buffers;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;

public static partial class glDRIVE
{
    /*
    函数 gl.pqroot
    方程求根连分式法
    f(x)方程左端函数的函数名。
    参数 xx: xx方程根初值。返回迭代终值。
    参数 eps: 控制精度要求。
    返回值 函数返回迭代次数。一次迭代最多作到七节连分式。本函数最多迭代20次。
    */

    public static string drive_pqroot()
    {
        int k;
        double x, eps;
        eps = 0.0000001;
        x = 1.0;

        gl.f_x = pqrootf;
        double[] xa = new double[1] { x };
        k = gl.pqroot(xa, eps);

        string rs = "";
        rs += gl.html_table("迭代次数=" + k + "，方程根为:", xa);
        rs += gl.html_table("检验精度=", new double[1] { pqrootf(xa[0]) });
        return rs;
    }

    // f(x)
    private static double pqrootf(double x)
    {
        double y;
        y = x * x * (x - 1.0) - 1.0;
        return (y);
    }
}